﻿using System.Collections.Generic;
using System.Linq;

namespace Ant.ICommon.Utilities
{
    public static class EnumerableHelper
    {
        /// <summary>
        /// 返回序列中的元素数量。
        /// </summary>
        /// <typeparam name="TSource">source 中的元素的类型。</typeparam>
        /// <param name="source">包含要计数的元素的序列。</param>
        /// <param name="def">序列为空默认返回的值。</param>
        /// <returns>输入序列中的元素数量。</returns>
        public static int CountOrDefault<TSource>(IEnumerable<TSource> source, int def = 0)
        {
            if (source == null) return def;
            return Enumerable.Count(source);
        }

        /// <summary>
        /// 是否空元素
        /// </summary>
        /// <typeparam name="TSource"></typeparam>
        /// <param name="source"></param>
        /// <returns></returns>
        public static bool IsEmpty<TSource>(IEnumerable<TSource> source)
        {
            return CountOrDefault(source) == 0;
        }
    }
}